home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / DShowIDL / Msvidctl.idl < prev    next >
Text File  |  2001-10-08  |  24KB  |  588 lines

  1. //------------------------------------------------------------------------------
  2. // File: MSVidCtl.idl
  3. //
  4. // Desc: IDL source for MSVidCtl.dll.
  5. //
  6. // Copyright (c) 1999-2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9. // This file will be processed by the MIDL tool to
  10. // produce the type library (MSVidCtl.tlb) and marshalling code.
  11.  
  12.  
  13. cpp_quote("//+-------------------------------------------------------------------------")
  14. cpp_quote("//")
  15. cpp_quote("//  Microsoft Windows")
  16. cpp_quote("//  Copyright (C) Microsoft Corporation, 1999-2001.")
  17. cpp_quote("//")
  18. cpp_quote("//--------------------------------------------------------------------------")
  19. cpp_quote("#pragma once")
  20.  
  21. #include <olectl.h>
  22. #ifndef DO_NO_IMPORTS
  23. #ifndef TUNING_MODEL_ONLY
  24. import "mshtml.idl";
  25. import "mstve.idl";
  26. import "mstvca.idl";
  27. import "segment.idl";
  28. #endif
  29. #endif
  30.  
  31. #ifndef TUNING_MODEL_ONLY
  32. typedef enum {
  33.     dispidInputs,
  34.     dispidOutputs,
  35.     dispid_Inputs,
  36.     dispid_Outputs,
  37.     dispidVideoRenderers,
  38.     dispidAudioRenderers,
  39.     dispidFeatures,
  40.     dispidInput,
  41.     dispidOutput,
  42.     dispidVideoRenderer,
  43.     dispidAudioRenderer,
  44.     dispidSelectedFeatures,
  45.     dispidView,  // total graph control
  46.     dispidBuild,
  47.     dispidPause,
  48.     dispidRun,
  49.     dispidStop,
  50.     dispidDecompose,
  51.     dispidDisplaySize,
  52.     dispidMaintainAspectRatio,
  53.     dispidColorKey,
  54.     dispidStateChange,
  55.     dispidgetState,
  56.     dispidunbind,
  57.     dispidbind,
  58.     dispidDisableVideo,
  59.     dispidDisableAudio,
  60.     dispidViewNext,
  61. } MSViddispidList;
  62.  
  63. typedef enum {
  64.     dslDefaultSize,
  65.     dslSourceSize = 0,   // synonym
  66.     dslHalfSourceSize,
  67.     dslDoubleSourceSize,
  68.     dslFullScreen,
  69.     dslHalfScreen,
  70.     dslQuarterScreen,
  71.     dslSixteenthScreen
  72. } DisplaySizeList;  
  73.  
  74. typedef enum {
  75.     STATE_UNBUILT =-1,
  76.     STATE_STOP,
  77.     STATE_PAUSE,
  78.     STATE_PLAY,
  79.  
  80. } MSVidCtlStateList;
  81.  
  82. //*****************************************************************************
  83. ///////////////////////////////////////////////////////////////////////////////
  84. //
  85. //  the full Viewer control
  86. //
  87. ///////////////////////////////////////////////////////////////////////////////
  88. //*****************************************************************************
  89.  
  90.         ///////////////////////////////////////////////////////////////////////////////////////
  91.         [
  92.                 object,
  93.                 uuid(B0EDF162-910A-11D2-B632-00C04F79498E),
  94.                 dual,
  95.                 hidden,
  96.                 nonextensible,
  97.                 helpstring("MS Video Control Interface"),
  98.                 pointer_default(unique)
  99.         ]
  100.         interface IMSVidCtl : IDispatch
  101.         {
  102.                 // stock props
  103.                 [propget, id(DISPID_AUTOSIZE)]
  104.                     HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
  105.                 [propput, id(DISPID_AUTOSIZE)]
  106.                     HRESULT AutoSize([in]VARIANT_BOOL vbool);
  107.                 [propget, id(DISPID_BACKCOLOR)]
  108.                     HRESULT BackColor([out,retval]OLE_COLOR* backcolor);
  109.                 [propput, id(DISPID_BACKCOLOR)]
  110.                     HRESULT BackColor([in]OLE_COLOR backcolor);
  111.                 [propget, id(DISPID_ENABLED)]
  112.                     HRESULT Enabled([out,retval]VARIANT_BOOL* pbool);
  113.                 [propput, id(DISPID_ENABLED)]
  114.                     HRESULT Enabled([in]VARIANT_BOOL vbool);
  115.                 [propget, id(DISPID_TABSTOP)]
  116.                     HRESULT TabStop([out, retval]VARIANT_BOOL* pbool);
  117.                 [propput, id(DISPID_TABSTOP)]
  118.                     HRESULT TabStop([in]VARIANT_BOOL vbool);
  119.                 [propget, id(DISPID_HWND)]
  120.                     HRESULT Window([out, retval]HWND* phwnd);
  121.                 [id(DISPID_REFRESH)]
  122.                     HRESULT Refresh();
  123.                 // pseudo video renderer properties/methods that require access to ole container 
  124.                 [propget, id(dispidDisplaySize)] 
  125.                     HRESULT DisplaySize([out,retval]DisplaySizeList *CurrentValue);
  126.                 [propput, id(dispidDisplaySize)] 
  127.                     HRESULT DisplaySize([in]DisplaySizeList NewValue);
  128.                 [propget, id(dispidMaintainAspectRatio)] 
  129.                     HRESULT MaintainAspectRatio([out,retval]VARIANT_BOOL *CurrentValue);
  130.                 [propput, id(dispidMaintainAspectRatio)]
  131.                     HRESULT MaintainAspectRatio([in]VARIANT_BOOL NewValue);
  132.  
  133.                 // non-stock visual propertiies that require coordination/implementation with
  134.                 // core ctl drawing/painting function
  135.                 [propget, id(dispidColorKey)] 
  136.                     HRESULT ColorKey([out,retval]OLE_COLOR *CurrentValue);
  137.                 [propput, id(dispidColorKey)]
  138.                     HRESULT ColorKey([in]OLE_COLOR NewValue);
  139.  
  140.  
  141.  
  142.                 // available collections
  143.                 [propget, id(dispidInputs), helpstring("Available Input Devices")] HRESULT InputsAvailable([in] BSTR CategoryGuid, [out, retval] IMSVidInputDevices * *pVal);
  144.                 [propget, id(dispidOutputs), helpstring("Available Output Devices")] HRESULT OutputsAvailable([in] BSTR CategoryGuid, [out, retval] IMSVidOutputDevices * *pVal);
  145.                 [propget, id(dispid_Inputs), hidden, restricted, helpstring("Available Input Devices")] HRESULT _InputsAvailable([in] LPCGUID CategoryGuid, [out, retval] IMSVidInputDevices * *pVal);
  146.                 [propget, id(dispid_Outputs), hidden, restricted, helpstring("Available Output Devices")] HRESULT _OutputsAvailable([in] LPCGUID CategoryGuid, [out, retval] IMSVidOutputDevices * *pVal);
  147.                 [propget, id(dispidVideoRenderers), helpstring("Available Video Renderers")] HRESULT VideoRenderersAvailable([out, retval] IMSVidVideoRendererDevices * *pVal);
  148.                 [propget, id(dispidAudioRenderers), helpstring("Available Audio Renderers")] HRESULT AudioRenderersAvailable([out, retval] IMSVidAudioRendererDevices * *pVal);
  149.                 [propget, id(dispidFeatures), helpstring("Available Features")] HRESULT FeaturesAvailable([out, retval] IMSVidFeatures * *pVal);
  150.  
  151.                 // current selections
  152.                 [propget, id(dispidInput), helpstring("Currently Selected Input Device")] HRESULT InputActive([out, retval] IMSVidInputDevice **pVal);
  153.                 [propput, id(dispidInput), helpstring("Currently Selected Input Device")] HRESULT InputActive([in] IMSVidInputDevice *pVal);
  154.                 [propget, id(dispidOutput), helpstring("Currently Selected Output Devices")] HRESULT OutputsActive([out, retval] IMSVidOutputDevices **pVal);
  155.                 [propput, id(dispidOutput), helpstring("Currently Selected Output Devices")] HRESULT OutputsActive([in] IMSVidOutputDevices *pVal);
  156.                 [propget, id(dispidVideoRenderer), helpstring("Currently Selected Video Renderer")] HRESULT VideoRendererActive([out, retval] IMSVidVideoRenderer **pVal);
  157.                 [propput, id(dispidVideoRenderer), helpstring("Currently Selected Video Renderer")] HRESULT VideoRendererActive([in] IMSVidVideoRenderer *pVal);
  158.                 [propget, id(dispidAudioRenderer), helpstring("Currently Selected Audio Renderer")] HRESULT AudioRendererActive([out, retval] IMSVidAudioRenderer **pVal);
  159.                 [propput, id(dispidAudioRenderer), helpstring("Currently Selected Audio Renderer")] HRESULT AudioRendererActive([in] IMSVidAudioRenderer *pVal);
  160.                 [propget, id(dispidSelectedFeatures), helpstring("Currently Selected Features")] HRESULT FeaturesActive([out, retval] IMSVidFeatures **pVal);
  161.                 [propput, id(dispidSelectedFeatures), helpstring("Currently Selected Features")] HRESULT FeaturesActive([in] IMSVidFeatures *pVal);
  162.                 [propget, id(dispidgetState), helpstring("Check the current MSVidCtl state.")] HRESULT State([out, retval]MSVidCtlStateList* lState);
  163.  
  164.                 // methods              
  165.                 [id(dispidView), helpstring("Find an input device for viewing the specified item. This may be a string(VT_BSTR) or an object(VT_UNKNOWN).")] HRESULT View([in] VARIANT* v);
  166.                 [id(dispidBuild), helpstring("Compose the graph")] HRESULT Build();
  167.                 [id(dispidPause), helpstring("Stop the graph")] HRESULT Pause();
  168.                 [id(dispidRun), helpstring("Compose the graph if necessary and start it running")] HRESULT Run();
  169.                 [id(dispidStop), helpstring("Stop the graph")] HRESULT Stop();
  170.                 [id(dispidDecompose), helpstring("Disassemble the graph(Inverse of Build)")] HRESULT Decompose();
  171.                 [id(dispidDisableVideo), helpstring("set active video renderer to nothing")] HRESULT DisableVideo();
  172.                 [id(dispidDisableAudio), helpstring("set active Audio renderer to nothing")] HRESULT DisableAudio();
  173.                 [id(dispidViewNext), helpstring("Find another input device for viewing the specified item. Works like View except skips current input")] HRESULT ViewNext([in] VARIANT* v);
  174.  
  175.         };
  176.  
  177.  ///Added for the mseventbinder
  178.     [
  179.         object,
  180.         dual,
  181.         oleautomation,
  182.         hidden,
  183.         nonextensible,
  184.         pointer_default(unique),        
  185.         uuid(C3A9F406-2222-436D-86D5-BA3229279EFB),
  186.         helpstring("IMSEventBinder Interface"),
  187.     ]
  188.     interface IMSEventBinder : IDispatch {
  189.         [id(dispidbind), helpstring("method Bind")] HRESULT Bind([in]LPDISPATCH pEventObject, [in]BSTR EventName, [in]BSTR EventHandler, [out, retval] LONG * CancelID);
  190.         [id(dispidunbind), helpstring("method Unbind")] HRESULT Unbind([in]DWORD CancelCookie);
  191.     };
  192.  
  193. ////    
  194.  
  195. #endif // TUNING_MODEL_ONLY
  196.  
  197. //*****************************************************************************
  198. //*****************************************************************************
  199. //////////////////////////////////////////////////////////////////////////////////////
  200. // Type Library for MS Video Control
  201. //////////////////////////////////////////////////////////////////////////////////////
  202. //*****************************************************************************
  203. //*****************************************************************************
  204.  
  205.  
  206. [
  207.         uuid(B0EDF154-910A-11D2-B632-00C04F79498E),
  208.         version(1.0),
  209.         helpstring("MS Video Control 1.0 Type Library")
  210. ]
  211. library MSVidCtlLib
  212. {
  213.         importlib("stdole2.tlb");
  214.  
  215.  
  216. #ifndef TUNING_MODEL_ONLY
  217. ///////////////////////////////////////////////////////////////////////////////////////
  218. // event interfaces
  219. ///////////////////////////////////////////////////////////////////////////////////////
  220.  
  221.         [
  222.                 uuid(B0EDF164-910A-11D2-B632-00C04F79498E),
  223.                 helpstring("MS Video Control Events Interface")
  224.         ]
  225.         dispinterface _IMSVidCtlEvents
  226.         {
  227.         properties:
  228.                 //  Event interface has no properties
  229.         methods:
  230.             [id(DISPID_CLICK)] void Click();
  231.             [id(DISPID_DBLCLICK)] void DblClick();
  232.             [id(DISPID_KEYDOWN)] void KeyDown(short* KeyCode, short Shift);
  233.             [id(DISPID_KEYPRESS)] void KeyPress(short* KeyAscii);
  234.             [id(DISPID_KEYUP)] void KeyUp(short* KeyCode, short Shift);
  235.             [id(DISPID_MOUSEDOWN)] void MouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
  236.             [id(DISPID_MOUSEMOVE)] void MouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
  237.             [id(DISPID_MOUSEUP)] void MouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
  238.             [id(DISPID_ERROREVENT)] void Error(short Number, BSTR* Description, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, boolean* CancelDisplay);
  239.             [id(dispidStateChange)] void StateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState);
  240.         };
  241.       
  242. //*****************************************************************************
  243. ///////////////////////////////////////////////////////////////////////////////////////
  244. // device classes
  245. ///////////////////////////////////////////////////////////////////////////////////////
  246. //*****************************************************************************
  247.  
  248. // inputs
  249.         ///////////////////////////////////////////////////////////////////////////////////////
  250.         [
  251.                 uuid(1C15D484-911D-11d2-B632-00C04F79498E),
  252.                 helpstring("MS Video Control Analog TV Tuner Device Class")
  253.         ]
  254.         coclass MSVidAnalogTunerDevice
  255.         {
  256.                 [default] interface IMSVidAnalogTuner;
  257.                 [default, source] interface IMSVidAnalogTunerEvent;
  258.                 interface IMSVidGraphSegment;
  259.         };
  260.  
  261.         ///////////////////////////////////////////////////////////////////////////////////////
  262.         [
  263.                 uuid(A2E3074E-6C3D-11d3-B653-00C04F79498E),
  264.                 helpstring("MS Video Control BDA Tuner Device Class")
  265.         ]
  266.         coclass MSVidBDATunerDevice
  267.         {
  268.                 [default] interface IMSVidTuner;
  269.                 [default, source] interface IMSVidTunerEvent;
  270.                 interface IMSVidGraphSegment;
  271.         };
  272.  
  273.         ///////////////////////////////////////////////////////////////////////////////////////
  274.         [
  275.                 uuid(37B0353C-A4C8-11d2-B634-00C04F79498E),
  276.                 helpstring("MS Video Control File Playback Device Class")
  277.         ]
  278.         coclass MSVidFilePlaybackDevice
  279.         {
  280.                 [default] interface IMSVidFilePlayback;
  281.                 [default, source] interface IMSVidFilePlaybackEvent;
  282.                 interface IMSVidGraphSegment;
  283.         };
  284.  
  285.  
  286.         [
  287.                 uuid(011B3619-FE63-4814-8A84-15A194CE9CE3),
  288.                 helpstring("MSVidWebDVD Class") 
  289.         ]
  290.         coclass MSVidWebDVD
  291.         {
  292.             [default] interface IMSVidWebDVD;
  293.             [default, source] interface IMSVidWebDVDEvent;
  294.             interface IMSVidGraphSegment;
  295.         };
  296.  
  297.         [
  298.             uuid(FA7C375B-66A7-4280-879D-FD459C84BB02),
  299.             helpstring("MSVidWebDVDAdm Class")
  300.         ]
  301.         coclass MSVidWebDVDAdm
  302.         {
  303.             [default] interface IMSVidWebDVDAdm;
  304.         };
  305.  
  306. // rendererers
  307.         ///////////////////////////////////////////////////////////////////////////////////////
  308.         [
  309.             uuid(37B03543-A4C8-11d2-B634-00C04F79498E),
  310.             helpstring("MS Video Control Video Renderer Class")
  311.         ]
  312.         coclass MSVidVideoRenderer
  313.         {
  314.             [default] interface IMSVidVideoRenderer2;
  315.             interface IMSVidVideoRenderer;
  316.             [default, source] interface IMSVidVideoRendererEvent;
  317.             //[default, source] interface IMSVidVideoRendererEvent2;
  318.             interface IMSVidGraphSegment;
  319.         };
  320.  
  321.         ///////////////////////////////////////////////////////////////////////////////////////
  322.         [
  323.             uuid(37B03544-A4C8-11d2-B634-00C04F79498E),
  324.             helpstring("MS Video Control Audio Renderer Class")
  325.         ]
  326.         coclass MSVidAudioRenderer
  327.         {
  328.             [default] interface IMSVidAudioRenderer;
  329.             [default, source] interface IMSVidAudioRendererEvent;
  330.             interface IMSVidGraphSegment;
  331.         };
  332.  
  333. // features
  334.  
  335.         [
  336.                 uuid(334125C0-77E5-11d3-B653-00C04F79498E),
  337.                 helpstring("MS Video Control Standard Data Services for Broadcast IP through NDIS stack")
  338.         ]
  339.         coclass MSVidDataServices
  340.         {
  341.                 interface IMSVidDataServices;
  342.         };
  343.  
  344.         [
  345.             uuid(7F9CB14D-48E4-43b6-9346-1AEBC39C64D3),
  346.             helpstring("MS Video Control Standard Closed Captioning")
  347.         ]
  348.         coclass MSVidClosedCaptioning
  349.         {
  350.             interface IMSVidClosedCaptioning;
  351.         };
  352.  
  353.  
  354.         [
  355.             uuid(1600F001-6666-4f66-B1E2-BF3C9FBB9BA6),
  356.             helpstring("MS Video Control TVE Feature Segment"),
  357.         ]
  358.         coclass MSVidTVEGSeg 
  359.         {
  360.             [default] interface IMSVidTVEGSeg;
  361.             interface ITVEFeature;                                  // 'active' service, outgoing events
  362.         //  interface IMSVidGraphSegment;                           // standard graph segment methods
  363.         };
  364.  
  365.         [
  366.             uuid(1600F101-6666-4f66-B1E2-BF3C9FBB9BA6),
  367.             helpstring("MS Video Control CA Feature Segment"),
  368.         ]
  369.         coclass MSVidCAGSeg 
  370.         {
  371.             [default] interface IMSVidCAGSeg;
  372.             interface ICAManager;                                   // aggregates with this..
  373.         //  interface IMSVidGraphSegment;                           // standard graph segment methods
  374.         };
  375.  
  376. ///////////////////////////////////////////////////////////////////////////////////////
  377. // control classes
  378. ///////////////////////////////////////////////////////////////////////////////////////
  379.  
  380.         ///////////////////////////////////////////////////////////////////////////////////////
  381.         [
  382.                 uuid(B0EDF163-910A-11D2-B632-00C04F79498E),
  383.                 control,
  384.                 helpstring("MS Video Control Class")
  385.         ]
  386.         coclass MSVidCtl
  387.         {
  388.                 [default] interface IMSVidCtl;
  389.                 [default, source] dispinterface _IMSVidCtlEvents;
  390.         };
  391.  
  392. ///////////////////////////////////////////////////////////////////////////////////////
  393. // device collections
  394. ///////////////////////////////////////////////////////////////////////////////////////
  395.         [
  396.                 uuid(C5702CCC-9B79-11d3-B654-00C04F79498E),
  397.                 helpstring("MS Video Control Input Device Collection Class")
  398.         ]
  399.         coclass MSVidInputDevices
  400.         {
  401.                 [default] interface IMSVidInputDevices;
  402.         };
  403.  
  404.         [
  405.                 uuid(C5702CCD-9B79-11d3-B654-00C04F79498E),
  406.                 helpstring("MS Video Control Output Device Collection Class")
  407.         ]
  408.         coclass MSVidOutputDevices
  409.         {
  410.                 [default] interface IMSVidOutputDevices;
  411.         };
  412.  
  413.         [
  414.                 uuid(C5702CCE-9B79-11d3-B654-00C04F79498E),
  415.                 helpstring("MS Video Control Video Renderer Device Collection Class")
  416.         ]
  417.         coclass MSVidVideoRendererDevices
  418.         {
  419.                 [default] interface IMSVidVideoRendererDevices;
  420.         };
  421.  
  422.         [
  423.                 uuid(C5702CCF-9B79-11d3-B654-00C04F79498E),
  424.                 helpstring("MS Video Control Audio Renderer Device Collection Class")
  425.         ]
  426.         coclass MSVidAudioRendererDevices
  427.         {
  428.                 [default] interface IMSVidAudioRendererDevices;
  429.         };
  430.  
  431.         [
  432.                 uuid(C5702CD0-9B79-11d3-B654-00C04F79498E),
  433.                 helpstring("MS Video Control Feature Collection Class")
  434.         ]
  435.         coclass MSVidFeatures
  436.         {
  437.                 [default] interface IMSVidFeatures;
  438.         };
  439.  
  440. ///////////////////////////////////////////////////////////////////////////////////////
  441. // composites
  442. ///////////////////////////////////////////////////////////////////////////////////////
  443.  
  444.         [
  445.                 uuid(2764BCE5-CC39-11D2-B639-00C04F79498E),
  446.                 helpstring("MS Video Control Generic Composition Class")
  447.         ]
  448.         coclass MSVidGenericComposite
  449.         {
  450.                 interface IMSVidCompositionSegment;
  451.         };
  452.  
  453.         [
  454.                 uuid(E18AF75A-08AF-11d3-B64A-00C04F79498E),
  455.                 helpstring("MS Video Control Custom Composition for Analog Capture to Overlay Mixer")
  456.         ]
  457.         coclass MSVidAnalogCaptureToOverlayMixer
  458.         {
  459.                 interface IMSVidCompositionSegment;
  460.         };
  461.  
  462.         [
  463.                 uuid(C5702CD6-9B79-11d3-B654-00C04F79498E),
  464.                 helpstring("MS Video Control Custom Composition for Analog Capture to Data Services")
  465.         ]
  466.         coclass MSVidAnalogCaptureToDataServices
  467.         {
  468.                 interface IMSVidCompositionSegment;
  469.         };
  470.  
  471.  
  472.         [
  473.                 uuid(267db0b3-55e3-4902-949b-df8f5cec0191),
  474.                 helpstring("MS Video Control Custom Composition for WebDVD to Overlay Mixer")
  475.         ]
  476.         coclass MSVidWebDVDToVideoRenderer
  477.         {
  478.                 interface IMSVidCompositionSegment;
  479.         };
  480.  
  481.         [
  482.                 uuid(6AD28EE1-5002-4e71-AAF7-BD077907B1A4),
  483.                 helpstring("MS Video Control Custom Composition for Mpeg2 Decoder to Closed Captioning")
  484.         ]
  485.         coclass MSVidMPEG2DecoderToClosedCaptioning
  486.         {
  487.                 interface IMSVidCompositionSegment;
  488.         };
  489.  
  490. ///////////////////////////////////////////////////////////////////////////////////////
  491. // Miscellaneous
  492. ///////////////////////////////////////////////////////////////////////////////////////
  493.  
  494.         [
  495.                 uuid(11973C25-3529-40e4-9AB1-DDC164CBEF49),
  496.                 helpstring("MS Video Control Rendering Behavior Factory")
  497.         ]
  498.         coclass MSVidRenderFactory
  499.         {
  500.                 interface IElementBehaviorFactory;
  501.         };
  502.         // Events
  503.         [
  504.             uuid(577FAA18-4518-445E-8F70-1473F8CF4BA4),
  505.             helpstring("MSEventBinder Class")
  506.         ]
  507.         coclass MSEventBinder
  508.         {
  509.             [default] interface IMSEventBinder;
  510.         };
  511.  
  512.         // vidrect class
  513.         [
  514.             hidden, restricted,
  515.             uuid(CB4276E6-7D5F-4cf1-9727-629C5E6DB6AE),
  516.             helpstring("Automation compliant scalable rectangle Class")
  517.         ]
  518.         coclass MSVidRect
  519.         {
  520.             [default] interface IMSVidRect;
  521.         };
  522.  
  523.     // NOTE: there is no object factory for the following classes.  
  524.     // the implementation for the underlying code is a c++ abstract base class.  
  525.     // this coclass is only provided here to force vb to expose the base interface 
  526.     // to enable polymorphic access to derived objects
  527.     [
  528.         hidden, restricted,
  529.         uuid(6E40476F-9C49-4c3e-8BB9-8587958EFF74),
  530.         helpstring("dummy class to expose base interface to VB")
  531.     ]
  532.     coclass MSVidDevice
  533.     {
  534.         [default] interface IMSVidDevice;
  535.     };
  536.     [
  537.         hidden, restricted,
  538.         uuid(AC1972F2-138A-4ca3-90DA-AE51112EDA28),
  539.         helpstring("dummy class to expose base interface to VB")
  540.     ]
  541.     coclass MSVidInputDevice
  542.     {
  543.         [default] interface IMSVidInputDevice;
  544.     };
  545.     [
  546.         hidden, restricted,
  547.         uuid(95F4820B-BB3A-4e2d-BC64-5B817BC2C30E),
  548.         helpstring("dummy class to expose base interface to VB")
  549.     ]
  550.     coclass MSVidVideoInputDevice
  551.     {
  552.         [default] interface IMSVidVideoInputDevice;
  553.     };
  554.     [
  555.         hidden, restricted,
  556.         uuid(1990D634-1A5E-4071-A34A-53AAFFCE9F36),
  557.         helpstring("dummy class to expose base interface to VB")
  558.     ]
  559.     coclass MSVidVideoPlaybackDevice
  560.     {
  561.         [default] interface IMSVidPlayback;
  562.     };
  563.     [
  564.         hidden, restricted,
  565.         uuid(7748530B-C08A-47ea-B24C-BE8695FF405F),
  566.         helpstring("dummy class to expose base interface to VB")
  567.     ]
  568.     coclass MSVidFeature
  569.     {
  570.         [default] interface IMSVidFeature;
  571.     };
  572.     [
  573.         hidden, restricted,
  574.         uuid(87EB890D-03AD-4e9d-9866-376E5EC572ED),
  575.         helpstring("dummy class to expose base interface to VB")
  576.     ]
  577.     coclass MSVidOutput
  578.     {
  579.         [default] interface IMSVidOutputDevice;
  580.     };
  581.  
  582.  
  583. #endif //TUNING_MODEL_ONLY 
  584.  
  585. };
  586.  
  587. // end of file msvidctl.idl
  588.